package fileDemo.mfile;

import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;


/**
 * Created by AJie on 2019/5/28
 * Function :
 */
public class FileOutputStreamDemo {
    public static void main(String[] args) throws Exception {
        final List<String> mStrList = new ArrayList();
        mStrList.add(null);
        testMethod2();

//        testMethod1();
    }

    private static void testMethod1() {
        Scanner scanner = new Scanner(System.in);

        try {
            // 创建字节输出流对象
            // FileOutputStream fos = new FileOutputStream("fos3.txt");
            // 创建一个向具有指定name的文件中写入数据的输出文件流。如果第二个参数为true,则将字节写入文件末尾处，而不是写入文件开始处
            FileOutputStream fos2 = new FileOutputStream("fos3.txt", true);// 第二個参数为true表示程序每次运行都是追加字符串在原有的字符上
            while (true) {
                // 第n个斐波那契数,从0开始
                String str = scanner.next();
                // 写数据
                fos2.write(str.getBytes());
                fos2.write("\r\n".getBytes());// 写入一个换行
                fos2.flush();
            }

        }catch (IOException e){
            e.printStackTrace();
        }finally {
            //        // 释放资源
//        fos2.close();
        }

    }

    private static void testMethod2() {
        FileWriter writer = null;
        Scanner scanner = new Scanner(System.in);

        // 创建字节输出流对象
        // FileOutputStream fos = new FileOutputStream("fos3.txt");
        // 创建一个向具有指定name的文件中写入数据的输出文件流。如果第二个参数为true,则将字节写入文件末尾处，而不是写入文件开始

        try {
            // 打开一个写文件器，构造函数中的第二个参数true表示以追加形式写文件
            writer = new FileWriter("fos3.txt", true);
            while (true) {
                // 第n个斐波那契数,从0开始
                String str = scanner.next();
                if ("222".equals(str)){
                    break;
                }else {
                    // 写数据
                    writer.write(str);
                    writer.write("\r\n");// 写入一个换行
                    writer.flush();
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if(writer != null){
                    writer.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }


}
